import axios from "axios";
import Vue from "vue";
import store from "@/store";
import router from "@/router";

const axiosInstance = axios.create({
    timeout: 5000,
    baseURL: baseURL
})

//axios还可以拦截请求，给请求配置一些东西
axiosInstance.interceptors.request.use(config => {
    if (store.state.softeem_ele_client_token) {
        config.headers["softeem_ele_client_token"] = store.state.softeem_ele_client_token;
    }
    // console.log(config);
    return config;
})

// axios有一个很重要的点就是拦截
// 拦截响应回来的数据
axiosInstance.interceptors.response.use(resp => {
    Vue.prototype.$msg.closeAll();
    // 所有成功的都在这里
    if (resp.data.status == "success") {
        return Promise.resolve(resp.data.data);
    } else {
        console.log("服务器成功，但是数据失败", resp.data);
        Vue.prototype.$msg.error(resp.data.msg);
        return Promise.reject(resp.data);
    }

}, error => {
    if (error.response.status === 403) {
        Vue.prototype.$msg.error("您还没有登录，请登录");
        router.push({name: "login"});
    } else {
        console.log(error);
        Vue.prototype.$msg.closeAll();
        return Promise.reject(error);
    }

})

export default axiosInstance;